package OperatorTest;
/*
逻辑运算符：
& 逻辑与  && 短路与
| 逻辑或  || 短路或
！ 逻辑非
逻辑运算符两边要求都是布尔类型，并且最终的结果也是布尔类型，这是逻辑运算符的特点
 */
public class OperatorTest3 {
    public static void main(String[] args){
        // & 逻辑与 两边都要为真
        System.out.println(true & true);
        System.out.println(true & false);
        System.out.println(100 > 101 & 100 < 101 );
        // | 逻辑或 有一边为true就为true
        System.out.println(100 > 101 | 100 > 90);
        // ! 取反
        System.out.println(!true);
        // && 当左边的表达式为false时，右边表达式不执行，这种现象是短路，而&则是两边都执行
        int x = 10;
        int y = 11;
        System.out.println(x > y && x > y++);
        System.out.println(y);//为11，右边表达式未执行，短路了
        // || 当左边为true地时候短路，右边表达式不执行，短路
        System.out.println(x < y || x > y++);
        System.out.println(y);
    }
}
